/*!
 * \details Biblioteca de funções para auxiliar na programação comercial
 * \author Alcione Ferreira\n
 * \since 09/11/2009\n
 * \date 19/04/2012\n
 * \version 1.0.2\n
 * \copyright GNU Public License.
 */

#include <configapdf.h>
#include <libex.h>
#include <hpdf.h>

#ifndef __LIBAPDF_H__
#define __LIBAPDF_H__ 1

using namespace std;

/** */
void erro_pdf(HPDF_STATUS , HPDF_STATUS , void *);

/**
 * Estrutra de dados utilizada para posicionamento de texto em um Retangulo
 */
#define STRCUT_PDF_COLUNA 1
typedef struct pdf_coluna
	{
	string nome;
	/**Ponto Inicial*/
	HPDF_REAL inicio;
	/**Ponto Final*/
	HPDF_REAL fim;
	/**Alinhamento do Texto*/
	HPDF_TextAlignment alinhamento;
	} PDF_COLUNA;

class APDF
	{
	public:
		APDF(string, int);
		~APDF();
		PDF_COLUNA *colunas;
		HPDF_REAL Tam_Fonte;
		HPDF_REAL Salto;
		void set_arquivo(string);
		virtual void set_texto ();
		
	protected:
		HPDF_Doc PDF_doc;/**<*/
		HPDF_Page Pagina;/**<*/
		HPDF_Font Font_Definida;/**<*/
		HPDF_Font Font_Nome;/**<*/
		HPDF_REAL Titulo;/**<*/
		HPDF_REAL Altura;/**<*/
		HPDF_REAL Largura;/**<*/
		HPDF_UINT i;/**<*/
		HPDF_UINT Alt_IMG;/**<*/
		HPDF_UINT Lar_IMG;/**<*/
		HPDF_Image image;/**<*/
		HPDF_Destination dst;/**<*/
		HPDF_Rect rect;/**<*/
		virtual void set_rodape ();
		virtual void set_cabecalho (string);
		int pag, pags;
		HPDF_REAL Pos_Texto, M_ini, M_fim;/**<*/
		int n_cols;

	private:
		string Arq_PDF;/**<*/
		string Arq_IMG;/**<*/
		bool retorno;
	};

#endif /*__LIBAPDF_H___*/
